package com.startupwebapp.dao;

import java.util.List;

import org.springframework.security.userdetails.UserDetailsService;

import com.startupwebapp.core.domain.users.Person;

public interface PersonDAO  {

	Integer save(Person transientInstance);

	void delete(Person persistentInstance);

	Person findById(Integer id);

	List<Person> findByExample(Person instance);

	List<Person> findByProperty(String propertyName, Object value);

	List<Person> findByFirstName(Object firstName);

	List<Person> findByEmail(Object email);

	List<Person> findByLastName(Object lastName);

	Person findByLogin(Object login);

	List<Person> findAll();

	List<Person> find(boolean state);

	Person merge(Person detachedInstance);

	void update(Person instance);

	public int countAll();

	public int count(boolean state);

	public List<?> get(int first, int amount);

}